Subject: Spec Corrections

From: "Jack Sanders" <[email-masked]>
Date: Wed, 6 Apr 94 09:03:42 EDT

The CPI-C Spec is nearing completion prior to publication in June.  Some
errors have been found, and others will be discovered.  There being no
further CIW meetings before publication, I will keep the CIW informed of
errors as they as discovered and the proposed fixes for them.  If there
are no objections to the proposed fixes, they will be added to the Spec
as indicated.  First, appended below, are the modifications agreed to in
the March CIW meeting regarding secondary information and a proposed
correction to the length of user_field.

Jack Sanders
=================

Changes for Secondary Information
=================================
Two changes are documented below.  Section and page numbers are based
on the third draft of the CPI-C Spec (dated 12/15/93).  Two revision
symbols are used in the left margin; '*' marks the changes approved in
the March '94 CIW, and ':' marks those for approval this time.

(1) Section B.2, last paragraph, on page 353

*  Except for application-oriented information, which is defined entirely
*  by the application, secondary information is a string of printable
   characters and, in general, consists of the following information in
   the order described:
     1. Condition code
     2. Description of the condition
     3. Cause of the condition
     4. Suggested actions
     5. Additional information from the implementation

:  For different secondary information types, the condition codes
:  are in the range specified in Table 18.  In some cases, secondary
   information may not have all these fields.  Fields present in
   secondary information are separated by two consecutive semicolons.
   The following sections provide examples of secondary information
   in different types.

:  Table 18. Range of Condition Codes for Different Secondary Information
:            Types
:  ---------------------------------------------------------------------
:  Secondary Information Type            Condition Codes
:  ---------------------------------------------------------------------
:  CPI Communications-defined            1 - 4000
:  ---------------------------------------------------------------------
:  CRM-specific                          4001 (for an LU 6.2 CRM),
:                                        4002 (for an OSI TP CRM)
:  ---------------------------------------------------------------------
:  Implementation-related                4003

(2) Section B.2.4, Table 21 (becomes Table. 22), on page 363

   Table 22. Examples of Implementation-Related Secondary Information
   ---------------------------------------------------------------------
   Example 1:
   ---------------------------------------------------------------------
:  4003;;0001 STACK_TOO_SMALL;;A minimum stack size of 3500 bytes is
   required by CPI-C when a call is issued.  CPI-C runs on the stack of
   the program that calls it.  When the call was issued, CPI-C found
:  the stack size to be less than the minimum size.;;Programmer
   Response:  Increase the stack size specified in the .DEF file used
   in linking.  If your program calls CPI-C from a thread it has
   created, be sure the stack size on the NewThreadStack parameter of
   your DosCreateThread function call is large enough.
   ---------------------------------------------------------------------
   Example 2:
   ---------------------------------------------------------------------
:  4003;;0002 CANNOT_ALLOCATE_SHARED_SEGMENT;;Communications Manager
:  could not allocate the shared segment named \SHAREMEM\ACSLGMEM.;;
   Programmer Response:  A necessary shared segment is not currently
   available.  This is no corrective action that your program can take.
   This problem will recur until the Communications Manager is stopped
   and restarted.  Operator Response:  Communications Manager must be
   restarted to correct the problem.

Non-Blocking Correction
=======================
The March CIW meeting approved to extend the size of user_field variable
from 8 to 12 bytes.  This proposal is to revert the change for the
following reasons:
  - The change cannot be made alone without applying the same change
    to callback_function and callback_info.
  - The most addressing capability in the market today is 8 bytes
    (e.g., PowerPC chip and Pentium).